import { IPSModelObject } from '../ipsmodel-object';
import { IPSSysMsgTempl } from '../msg/ipssys-msg-templ';
import { IPSWFRole } from './ipswfrole';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSWFProcessRole
 */
export interface IPSWFProcessRole extends IPSModelObject {
  /**
   * 通知消息模板
   *
   * @type {IPSSysMsgTempl}
   */
  getPSSysMsgTempl(): IPSSysMsgTempl | null;

  /**
   * 通知消息模板
   *
   * @type {IPSSysMsgTempl}
   */
  get psSysMsgTempl(): IPSSysMsgTempl | null;

  /**
   * 通知消息模板（必须存在）
   *
   * @type {IPSSysMsgTempl}
   */
  getPSSysMsgTemplMust(): IPSSysMsgTempl;

  /**
   * 流程角色对象
   *
   * @type {IPSWFRole}
   */
  getPSWFRole(): IPSWFRole | null;

  /**
   * 流程角色对象
   *
   * @type {IPSWFRole}
   */
  get psWFRole(): IPSWFRole | null;

  /**
   * 流程角色对象（必须存在）
   *
   * @type {IPSWFRole}
   */
  getPSWFRoleMust(): IPSWFRole;

  /**
   * 数据对象属性名称
   * @type {string}
   */
  uDField: string;

  /**
   * 处理角色数据
   * @type {string}
   */
  userData: string;

  /**
   * 处理角色数据2
   * @type {string}
   */
  userData2: string;

  /**
   * 流程处理角色类型
   * @description 值模式 [流程处理角色类型] {WFROLE：工作流角色、 LASTTWOSTEPACTOR：上两个步骤操作者、 LASTTHREESTEPACTOR：上三个步骤操作者、 LASTSTEPACTOR：上一步骤操作者、 UDACTOR：当前数据属性、 CURACTOR：当前操作者 }
   * @type {( string | 'WFROLE' | 'LASTTWOSTEPACTOR' | 'LASTTHREESTEPACTOR' | 'LASTSTEPACTOR' | 'UDACTOR' | 'CURACTOR')}
   */
  wFProcessRoleType: string | 'WFROLE' | 'LASTTWOSTEPACTOR' | 'LASTTHREESTEPACTOR' | 'LASTSTEPACTOR' | 'UDACTOR' | 'CURACTOR';

  /**
   * 仅抄送模式
   * @type {boolean}
   * @default false
   */
  cCMode: boolean;
}
